using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson11 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        #region 知识点一 资源打包是指什么？
        //资源打包是指，将可寻址资源打包到AssetBundle资源绑定包中
        //以前我们学习AssetBundle时需要我们自己写代码或者通过工具进行打包
        //现在Addressable将这个过程自动化了
        //可寻址资源中资源一般以组为单位进行打包
        //最终的AB包数量，都是基于资源组决定的

        //打包好的AB包，我们可以自定义如何使用它们
        //1.发布游戏时所有AB包作为原始资源一起打包出去（这样做的目的仅仅是单机游戏为了减小游戏包体）
        //2.将AB包放到远端服务器，发布游戏时只打包必备资源（这样做的目的是不仅可以减小包体，还可以进行热更新）
        #endregion

        #region 知识点二 资源打包的模式
        //之前在讲解Packed Assets配置相关时
        //有一个打包模式的字段Bundle Mode
        //我们有三种打包的方式
        //Pack Together：创建包含组中所有资产的单个包
        //Pack Separately：为组中的每个类型的资源创建一个包。如精灵图片中的精灵图片被包装在一起
        //Pack Together by Label：为共享相同标签组合的资产创建一个包

        //一般情况下，我们都使用第一种模式，按组来进行打包，所以我们在整理资源时要尽量合理
        #endregion

        #region 知识点三 资源打包的注意事项
        //1.场景资源始终有自己单独的包
        //  当一个可寻址包中有场景资源和普通资源时，场景资源和其它资源始终会被分开打包
        //  也就是说，该组会生成两个包，一个场景的，一个其它资源的

        //2.资源依赖的注意事项
        //       如果资源a和资源b都使用了资源c，但是资源a和b是可寻址资源但不在一个组中，而c不是可寻址资源
        //       那么这时资源c分别会被打进a和b的包，相当于这时的c就被重复利用了，浪费了空间
        //       较好的解决方案是:将c也作为可寻址资源， a-A包  b-B包  c-C包
        //       这时c不会被打进A、B包，A、B包只会依赖于C，而Addressable会自动帮助我们处理依赖问题
        //       注意：在使用图集时，尤为要注意这个问题，当不同包中内容使用同一个图集中图片时，
        //        建议大家将图集也作为可寻址资源，并且有专门的一个图集包
        //        让其它使用图集中图片的对象会对该图集包产生依赖

        //3.合理安排可寻址资源分组
        //同类型，同作用放一起
        //比如：角色组、怪物组、武器组、衣服组、登录UI组、装备UI组、音效组、可变贴图组、图集组等等

        //4.关于包的数量（分组的数量）
        //要根据实际情况来对资源进行布局
        //包(分组)过多、包(分组)过大都不太好
        //要根据自己的实际情况进行组的安排
        #endregion
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
